package plannegocio.web;

//import java.io.FileInputStream;
//import java.io.InputStream;
//import java.nio.file.Files;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
//import javax.servlet.http.HttpSession;

//import org.apache.commons.io.IOUtils;
import org.springframework.stereotype.Controller;
//import org.springframework.web.bind.ServletRequestUtils;
import org.springframework.web.bind.ServletRequestUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;

import plannegocio.excepcion.DAOExcepcion;

import plannegocio.modelo.PlanNegocio;
import plannegocio.negocio.GestionPlannegocios;


@Controller
public class PlanNegocioxAprobarController {

	// ***************
	// Mantenimiento *
	// ***************
	
	@RequestMapping(value = "/mantenimiento_plannegocioxaprobar", method = RequestMethod.GET)
	protected ModelAndView mantener_plannegocioxaprobar(HttpServletRequest request,
			HttpServletResponse response) throws Exception {
		
		HttpSession sesion=request.getSession();
		sesion.setAttribute("TipoMantiene", "");
		
		Map<String, Object> contactMap = new HashMap<String, Object>();
		PlanNegocio objPlanNegocio = new PlanNegocio();
		contactMap.put("mensaje", "");
		contactMap.put("objPlanNegocio", objPlanNegocio);
		return new ModelAndView("/mantenimiento_plannegocioxaprobar", contactMap);
		

		
		
	}
	
	@RequestMapping(value = "/editar_plannegocioxaprobar")
	protected ModelAndView editar_plannegocioxaprobar(HttpServletRequest request,
			HttpServletResponse response) throws Exception {
		
		HttpSession sesion=request.getSession();
		sesion.setAttribute("TipoMantiene", "EDITAR");
		
		int idplan= ServletRequestUtils.getRequiredIntParameter(request, "id");
		
		Map<String, Object> contactMap = new HashMap<String, Object>();
		GestionPlannegocios negocio= new GestionPlannegocios();
		PlanNegocio objPlanNegocio = new PlanNegocio();
		objPlanNegocio=negocio.obtener_plannegocio(idplan);
		
		
		contactMap.put("mensaje", "");
		contactMap.put("objPlanNegocio", objPlanNegocio);
		return new ModelAndView("/mantenimiento_plannegocioxaprobar", contactMap);
	}
	

	@RequestMapping(value = "/saveplannegocioxaprobar", method=RequestMethod.POST)
	protected ModelAndView save_plannegocioxaprobar(HttpServletRequest request,
			HttpServletResponse response) throws Exception {
		
		HttpSession sesion=request.getSession();
		String tipomantenimiento=(String)sesion.getAttribute("TipoMantiene");
		
		Map<String, Object> contactMap = new HashMap<String, Object>();
		GestionPlannegocios negocio= new GestionPlannegocios();
		
		PlanNegocio vo = new PlanNegocio();
		int id; //=0;

		if (request.getParameter("planid").equals("0")){
			
			id=Integer.parseInt(request.getParameter("planid"));
			vo.setPlanID(id);
		}				

		vo.setGlosa(request.getParameter("estado"));
		vo.setEstado(request.getParameter("glosa"));

		id=Integer.parseInt(request.getParameter("planid"));
		vo.setPlanID(id);

	

		try {
			
			if (tipomantenimiento.equals("EDITAR")){
				negocio.ActualizarPlanNegocioxAprobar(
						request.getParameter("estado"),
						request.getParameter("glosa"), id );
			}
			sesion.setAttribute("TipoMantiene", "");
		} catch (DAOExcepcion e) {

			contactMap.put("mensaje", e.getMessage());
			contactMap.put("objPlanNegocio", vo);

			return new ModelAndView("/mantenimiento_plannegocioxaprobar", contactMap);
		}
		return new ModelAndView("redirect:busqueda_plannegocioxaprobar.html");
	}
	
	/*nombres,ape_paterno,ape_materno,tipo_doc_identidad,
	nro_doc_identidad,email,movil,direccion,fecha_nacimiento,
	pwd_cuenta*/
	
	@RequestMapping(value = "/busqueda_plannegocioxaprobar",method=RequestMethod.GET)	
	protected ModelAndView busqueda_plannegocioxaprobar(HttpServletRequest request,
			HttpServletResponse response) throws Exception {
		
		GestionPlannegocios negocio= new GestionPlannegocios();
		Collection<PlanNegocio> listaplanesxaprobar = null;
		listaplanesxaprobar = negocio.BuscarPlanNegocio("");
		
		//return new ModelAndView("planesxsabio", "PLANESXSABIO", listaplanesxsabio);
		
		return new ModelAndView("busqueda_plannegocioxaprobar","PLANESXAPROBAR",listaplanesxaprobar);
	}
	@RequestMapping(value = "/busquedaplannegocioxaprobar" ,method=RequestMethod.POST)
	protected ModelAndView busquedaplannegocioxaprobar(HttpServletRequest request,
			HttpServletResponse response) throws Exception {
		
		String nombre =request.getParameter("dato_buscar");
		System.out.println(nombre);
		GestionPlannegocios negocio= new GestionPlannegocios();
		Collection<PlanNegocio> listaplanesxaprobar = null;
		listaplanesxaprobar = negocio.BuscarPlanNegocio(nombre);
		
		//return new ModelAndView("planesxsabio", "PLANESXSABIO", listaplanesxsabio);
		
		return new ModelAndView("busqueda_plannegocioxaprobar","PLANESXAPROBAR",listaplanesxaprobar);
	}
}